/**
 * @author 康文程
 * @date 2023-12-13 下午 03:49
 */
class Text_util {
    /**
     * 点击显示与隐藏 JQuery无动画
     * @param textA 触发事件元素
     * @param textB 触发事件的元素
     * @param elementA 显示或隐藏的元素
     * @param elementB 显示或隐藏的元素
     * @param handlersA 执行完毕后需要执行的函数 A
     * @param handlersB 执行完毕后需要执行的函数 B
     */
    showHide(textA, textB,elementA,elementB, handlersA, handlersB) {
        textA.on("click", function () {
            elementA.hide()
            elementB.show()
            handlersA();
        });
        textB.on("click", function () {
            elementA.show()
            elementB.hide()
            handlersB();
        });
    }
    /**
     * 事件实时刷新
     */
    updateTime(element) {
        let now = new Date();
        let hours = now.getHours();
        let minutes = now.getMinutes();
        let seconds = now.getSeconds();
        let ampm = hours >= 12 ? '下午' : '上午';

        // 格式化时间为 HH:MM:SS
        hours = hours % 12;
        hours = hours ? hours : 12; // 处理午夜情况
        minutes = minutes < 10 ? '0' + minutes : minutes;
        seconds = seconds < 10 ? '0' + seconds : seconds;

        // 更新时间显示
        element.innerHTML = now.getFullYear() + '-' +
            (now.getMonth() + 1) + '-' + now.getDate() + ' ' + ampm + ' ' +
            hours + ':' + minutes + ':' + seconds;
        return "true";
    }

    /**
     * 清空空格
     * @param text 文本
     * @return {*} 返回清空空格后的字符串
     */
    clearSpaces(text){
        return text.replace(/\s+/g, '');
    }

    /**
     * 单一对象转JSON
     * @param str 对象
     * @return {{JSON}} JSON
     */
    objectToJson(str){
        // 使用正则表达式提取属性和值
        let regex = /(\w+)\s*=\s*([^,)]+)/g;
        let matches = str.match(regex);

        // 构造 JSON 对象
        let coupon = {};
        for (let i = 0; i < matches.length; i++) {
            let match = matches[i];
            let parts = match.split('=');
            let key = parts[0].trim();
            let value = parts[1].trim();
            // 处理特殊情况：null 值
            if (value === 'null') {
                value = null;
            }

            coupon[key] = value;
        }
        return coupon;
    }

    /**
     * 时间转格式
     * @param inputDateTime 时间
     * @return {string}
     */
    formatDateTime(inputDateTime) {
        // 创建一个新的 Date 对象
        let date = new Date(inputDateTime);

        // 提取年、月、日、小时和分钟
        let year = date.getFullYear();
        let month = date.getMonth() + 1;
        let day = date.getDate();
        let hours = date.getHours();
        let minutes = date.getMinutes();

        // 将月份和日期补零（如果需要）
        month = month < 10 ? "0" + month : month;
        day = day < 10 ? "0" + day : day;


        return year + "-" + month + "-" + day + " " + hours + ":" + minutes;
    }
}